diff --git a/system/database/drivers/cubrid/cubrid_driver.php b/system/database/drivers/cubrid/cubrid_driver.php
index 971f1ea..6b9286f 100644
--- a/system/database/drivers/cubrid/cubrid_driver.php
+++ b/system/database/drivers/cubrid/cubrid_driver.php
@@ -469,7 +469,7 @@
 	 */
 	protected function _limit($sql, $limit, $offset)
 	{
-		return $sql.'LIMIT '.($offset === 0 ? '' : $offset.', ').$limit;
+		return $sql.'LIMIT '.($offset == 0 ? '' : $offset.', ').$limit;
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/sqlite/sqlite_driver.php b/system/database/drivers/sqlite/sqlite_driver.php
index d9820e1..f52b1ba 100644
--- a/system/database/drivers/sqlite/sqlite_driver.php
+++ b/system/database/drivers/sqlite/sqlite_driver.php
@@ -404,16 +404,16 @@
 	 */
 	protected function _limit($sql, $limit, $offset)
 	{
-		if ($offset === 0)
+		if ($offset == 0)
 		{
 			$offset = '';
 		}
 		else
 		{
-			$offset .= ", ";
+			$offset .= ', ';
 		}
 
-		return $sql."LIMIT ".$offset.$limit;
+		return $sql.'LIMIT '.$offset.$limit;
 	}
 
 	// --------------------------------------------------------------------
diff --git a/system/database/drivers/sqlite3/sqlite3_driver.php b/system/database/drivers/sqlite3/sqlite3_driver.php
index ea4cf2d..a74c528 100644
--- a/system/database/drivers/sqlite3/sqlite3_driver.php
+++ b/system/database/drivers/sqlite3/sqlite3_driver.php
@@ -87,7 +87,7 @@
 	public function db_pconnect()
 	{
 		log_message('debug', 'SQLite3 doesn\'t support persistent connections');
-		return $this->db_pconnect();
+		return $this->db_connect();
 	}
 
 	// --------------------------------------------------------------------
diff --git a/tests/codeigniter/database/query_builder/insert_test.php b/tests/codeigniter/database/query_builder/insert_test.php
index 8ba60e2..a9aafb6 100644
--- a/tests/codeigniter/database/query_builder/insert_test.php
+++ b/tests/codeigniter/database/query_builder/insert_test.php
@@ -26,7 +26,7 @@
 	public function test_insert()
 	{
 		$job_data = array('id' => 1, 'name' => 'Grocery Sales', 'description' => 'Discount!');
-		
+
 		// Do normal insert
 		$this->assertTrue($this->db->insert('job', $job_data));
 
@@ -45,10 +45,10 @@
 	public function test_insert_batch()
 	{
 		$job_datas = array(
-			array('id' => 2, 'name' => 'Commedian', 'description' => 'Theres something in your teeth'), 
+			array('id' => 2, 'name' => 'Commedian', 'description' => 'Theres something in your teeth'),
 			array('id' => 3, 'name' => 'Cab Driver', 'description' => 'Iam yellow'),
 		);
-		
+
 		// Do insert batch except for sqlite driver
 		if (strpos(DB_DRIVER, 'sqlite') === FALSE)
 		{
@@ -62,5 +62,5 @@
 			$this->assertEquals('Cab Driver', $job_3->name);
 		}
 	}
-	
+
 }
\ No newline at end of file
diff --git a/tests/mocks/database/drivers/sqlite.php b/tests/mocks/database/drivers/sqlite.php
index 76a182c..15cefbf 100644
--- a/tests/mocks/database/drivers/sqlite.php
+++ b/tests/mocks/database/drivers/sqlite.php
@@ -1,7 +1,7 @@
 <?php
 
 class Mock_Database_Drivers_Sqlite extends Mock_Database_DB_Driver {
-	
+
 	/**
 	 * Instantiate the database driver
 	 *
